from py2neo import *
from DataTranser import *
import json

'''
1. 获取每一种类型的节点
2. 对每一种类型的节点列表（list）进行排序
3. 对每一种类型的节点，获取最大的前core_point的点的id_list
4. 按id_list的顺序，查询指向点的下一级的所有节点和关系。
5. 把查询到的所有的节点和关系纳入数据库，注意去重
'''
url = 'http://localhost:7474'  # 本机或者其他地方的数据库地址
user = 'neo4j'  # 数据库用户名
password = '233'  # 数据库密码

graph = Graph(url, username=user, password=password)  # 连接到一个图数据库

core_point = 1  # 每一类选取的核心点数

nodes_list = []
links_list = []

# 1. 获取每一种类型的节点并按照value进行排序
ship_list = []
port_list = []
country_list = []
ship_owner_list = []
get_every_kind_of_nodes_value_data(
    graph,
    ship_list,
    country_list,
    port_list,
    ship_owner_list)
# 2. 按照排序每一种门类下获取cor_point个核心节点
[ship_list, country_list, port_list, ship_owner_list] = get_all_kind_core_point(
    core_point, ship_list, country_list, port_list, ship_owner_list)
# 3. 查询所有的核心节点并插入数据库
load_core_data(graph, ship_list, nodes_list, links_list)
load_core_data(graph, country_list, nodes_list, links_list)
load_core_data(graph, port_list, nodes_list, links_list)
load_core_data(graph, ship_owner_list, nodes_list, links_list)

result_dic = {'nodes': nodes_list,
              'links': links_list}
result_json_str = json.dumps(result_dic)
f = open("/Users/shaozezhi/Desktop/record.json", "w")
# json.dump(result_json_str, f)
f.write(result_json_str)
